package com.example.drug.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.example.common.entity.EnumConfig;
import com.example.drug.dto.req.RxListReq;
import com.example.drug.dto.req.RxMainReq;
import com.example.drug.dto.req.UnCheckRecipeReq;
import com.example.drug.dto.resp.OrderPatients;
import com.example.drug.dto.resp.PatientsInfo;
import com.example.drug.dto.resp.PharmacistDetail;
import com.example.drug.dto.resp.PharmacistOrder;

public interface PrescriptionService {
    Map<String, Object> getPharmacistMsg(Long DCID, UnCheckRecipeReq req);

    PharmacistDetail getPharmacistdetails(Long DCID, String RxOrderNO);

    Map<String,Object> getPatientsInfo(long pid);

    String UpdateRxMain(Long DCID, RxMainReq re);

    OrderPatients getOrderPatientsInfo(Long PID, String OrderNO);

    HashMap<String,Object> getPrescription(int Page, int Limit, int ChkStatus, long DCID);

    List<EnumConfig> getEnumConfig();
    
    Map<String,Object> rxStatistics();

    Map<String,Object> rxList(RxListReq req);

    /**
     * 获得当前用户是否激活
     * @param phone 用户手机号
     * @return 返回用户信息
     */
    Map<String, String> getCaMessage(String phone);

    /**
     * 添加签名任务
     * @param orderId 订单id
     * @return 返回ca 返回信息
     */
    Map<String, String> addSignJob(String orderId, String msspId);

    /**
     * 获得签名结果
     * @param signJobId 签名任务id
     * @param msspId 用户编号
     * @param orderId 订单id
     * @return 返回签名任务
     */
    Map<String,String> querySignJob(String signJobId, String msspId, String orderId);

    /**
     * 校验是否签名成功
     * @param plain 原文
     * @param signResult 签名结果
     * @param cert 证书
     * @param orderId 订单id
     * @param timeSignature 时间戳签名值
     * @return 返回签名结果
     */
    Map<String,String> verifySign(String plain, String signResult, String cert, String orderId,String timeSignature);

    Boolean isCaSess(String rxOrderNo);
    
    Map<String,Object> getCaOrder(String rxorderno);
}
